package com.lse_api.utils;

import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;

/**
 * spring boot 文件上传工具
 *
 * @author 祁雪
 */
@Slf4j
public class FileUploadBoot {

    /**
     * 上传文件
     *
     * @param file
     * @param fileName 文件名称
     * @param path     文件夹地址 由boot配置文件配置 ${web.upload-path}文件夹名称
     * @return
     */
    public static boolean uploadDefault(MultipartFile file,
                                        String fileName,
                                        String path) {

        boolean flag = false;
        try {
            if (file == null) {
                return flag;
            }

            String suffix = getFileSuffix(file.getOriginalFilename());

            if (StringUtils.isEmpty(suffix)) {
                return flag;
            }

            fileName = fileName + suffix;

            File dir = new File(path, fileName);
            if (!dir.getParentFile().exists()) {
                dir.getParentFile().mkdirs();
            }

            file.transferTo(dir);
            flag = true;

            return flag;

        } catch (Exception e) {
            flag = false;
            log.error("file upload out error", e);
        }

        return flag;

    }

    /**
     * 读取文件后缀名
     *
     * @param fileName
     * @return
     */
    public static String getFileSuffix(String fileName) {

        if (StringUtils.isEmpty(fileName)) {
            return null;
        }

        String suffix = fileName.substring(fileName.lastIndexOf("."));

        return suffix;
    }

}
